home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / libx11inc.lha / X11 / Xm / PrimitiveP.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-13  |  6.0 KB  |  207 lines

  1. /* 
  2.  * (c) Copyright 1989, 1990, 1991, 1992 OPEN SOFTWARE FOUNDATION, INC.
  3.  * ALL RIGHTS RESERVED
  4. */ 
  5. /*   $RCSfile: PrimitiveP.h,v $ $Revision: 1.13 $ $Date: 92/07/31 14:14:11 $ */
  6. /*
  7. *  (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  8. /*
  9. *  (c) Copyright 1989, 1990 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
  10. /*
  11. *  (c) Copyright 1988 MASSACHUSETTS INSTITUTE OF TECHNOLOGY  */
  12. #ifndef _XmPrimitiveP_h
  13. #define _XmPrimitiveP_h
  14.  
  15. #ifndef _XmNO_BC_INCL
  16. #define _XmNO_BC_INCL
  17. #endif
  18.  
  19. #include <Xm/XmP.h>
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25.  
  26. /* Access Macros */
  27.  
  28. #define Prim_ShadowThickness(w) (((XmPrimitiveWidget)(w))->primitive.shadow_thickness)
  29. #define Prim_HaveTraversal(w) (((XmPrimitiveWidget)(w))->primitive.have_traversal)
  30.  
  31. #define PCEPTR(wc)  ((XmPrimitiveClassExt *)(&(((XmPrimitiveWidgetClass)(wc))->primitive_class.extension)))
  32. #define _XmGetPrimitiveClassExtPtr(wc, owner) \
  33.   ((*PCEPTR(wc) && (((*PCEPTR(wc))->record_type) == owner))\
  34.    ? PCEPTR(wc) \
  35.    :((XmPrimitiveClassExt *) _XmGetClassExtensionPtr(((XmGenericClassExt *)PCEPTR(wc)), owner)))
  36.  
  37.  
  38. #define XmPrimitiveClassExtVersion 1L
  39.  
  40.  
  41. typedef struct _XmPrimitiveClassExtRec{
  42.     XtPointer           next_extension;
  43.     XrmQuark            record_type;
  44.     long                version;
  45.     Cardinal            record_size;
  46.     XmWidgetBaselineProc widget_baseline;
  47.     XmWidgetDisplayRectProc  widget_display_rect;
  48.     XmWidgetMarginsProc widget_margins;
  49. }XmPrimitiveClassExtRec, *XmPrimitiveClassExt;
  50.  
  51. typedef struct _XmPrimitiveClassPart
  52. {
  53.    XtWidgetProc         border_highlight;
  54.    XtWidgetProc         border_unhighlight;
  55.    String               translations;
  56.    XtActionProc         arm_and_activate;
  57.    XmSyntheticResource * syn_resources;   
  58.    int                  num_syn_resources;   
  59.    XtPointer            extension;
  60. } XmPrimitiveClassPart;
  61.  
  62. typedef struct _XmPrimitiveClassRec
  63. {
  64.     CoreClassPart        core_class;
  65.     XmPrimitiveClassPart primitive_class;
  66. } XmPrimitiveClassRec;
  67.  
  68. #ifndef PRIMITIVE
  69. externalref XmPrimitiveClassRec xmPrimitiveClassRec;
  70. #endif
  71.  
  72.  
  73. /*  The Primitive instance record  */
  74.  
  75. typedef struct _XmPrimitivePart
  76. {
  77.    Pixel   foreground;
  78.  
  79.    Dimension   shadow_thickness;
  80.    Pixel   top_shadow_color;
  81.    Pixmap  top_shadow_pixmap;
  82.    Pixel   bottom_shadow_color;
  83.    Pixmap  bottom_shadow_pixmap;
  84.  
  85.    Dimension   highlight_thickness;
  86.    Pixel   highlight_color;
  87.    Pixmap  highlight_pixmap;
  88.  
  89.    XtCallbackList help_callback;
  90.    XtPointer      user_data;
  91.  
  92.    Boolean traversal_on;
  93.    Boolean highlight_on_enter;
  94.    Boolean have_traversal;
  95.  
  96.    unsigned char unit_type;
  97.    XmNavigationType navigation_type;
  98.  
  99.    Boolean highlight_drawn;
  100.    Boolean highlighted;
  101.  
  102.    GC      highlight_GC;
  103.    GC      top_shadow_GC;
  104.    GC      bottom_shadow_GC;
  105. } XmPrimitivePart;
  106.  
  107. typedef struct _XmPrimitiveRec
  108. {
  109.    CorePart        core;
  110.    XmPrimitivePart primitive;
  111. } XmPrimitiveRec;
  112.  
  113.  
  114. /********    Private Function Declarations    ********/
  115. #ifdef _NO_PROTO
  116.  
  117. extern void _XmTraverseLeft() ;
  118. extern void _XmTraverseRight() ;
  119. extern void _XmTraverseUp() ;
  120. extern void _XmTraverseDown() ;
  121. extern void _XmTraverseNext() ;
  122. extern void _XmTraversePrev() ;
  123. extern void _XmTraverseHome() ;
  124. extern void _XmTraverseNextTabGroup() ;
  125. extern void _XmTraversePrevTabGroup() ;
  126. extern void _XmPrimitiveHelp() ;
  127. extern void _XmPrimitiveParentActivate() ;
  128. extern void _XmPrimitiveParentCancel() ;
  129. extern Boolean _XmDifferentBackground() ;
  130.  
  131. #else
  132.  
  133. extern void _XmTraverseLeft( 
  134.                         Widget w,
  135.                         XEvent *event,
  136.                         String *params,
  137.                         Cardinal *num_params) ;
  138. extern void _XmTraverseRight( 
  139.                         Widget w,
  140.                         XEvent *event,
  141.                         String *params,
  142.                         Cardinal *num_params) ;
  143. extern void _XmTraverseUp( 
  144.                         Widget w,
  145.                         XEvent *event,
  146.                         String *params,
  147.                         Cardinal *num_params) ;
  148. extern void _XmTraverseDown( 
  149.                         Widget w,
  150.                         XEvent *event,
  151.                         String *params,
  152.                         Cardinal *num_params) ;
  153. extern void _XmTraverseNext( 
  154.                         Widget w,
  155.                         XEvent *event,
  156.                         String *params,
  157.                         Cardinal *num_params) ;
  158. extern void _XmTraversePrev( 
  159.                         Widget w,
  160.                         XEvent *event,
  161.                         String *params,
  162.                         Cardinal *num_params) ;
  163. extern void _XmTraverseHome( 
  164.                         Widget w,
  165.                         XEvent *event,
  166.                         String *params,
  167.                         Cardinal *num_params) ;
  168. extern void _XmTraverseNextTabGroup( 
  169.                         Widget w,
  170.                         XEvent *event,
  171.                         String *params,
  172.                         Cardinal *num_params) ;
  173. extern void _XmTraversePrevTabGroup( 
  174.                         Widget w,
  175.                         XEvent *event,
  176.                         String *params,
  177.                         Cardinal *num_params) ;
  178. extern void _XmPrimitiveHelp( 
  179.                         Widget wid,
  180.                         XEvent *event,
  181.                         String *params,
  182.                         Cardinal *num_params) ;
  183. extern void _XmPrimitiveParentActivate( 
  184.                         Widget pw,
  185.                         XEvent *event,
  186.                         String *params,
  187.                         Cardinal *num_params) ;
  188. extern void _XmPrimitiveParentCancel( 
  189.                         Widget pw,
  190.                         XEvent *event,
  191.                         String *params,
  192.                         Cardinal *num_params) ;
  193. extern Boolean _XmDifferentBackground( 
  194.                         Widget w,
  195.                         Widget parent) ;
  196.  
  197. #endif /* _NO_PROTO */
  198. /********    End Private Function Declarations    ********/
  199.  
  200.  
  201. #ifdef __cplusplus
  202. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  203. #endif
  204.  
  205. #endif /* _XmPrimitiveP_h */
  206. /* DON'T ADD ANYTHING AFTER THIS #endif */
  207.